package net.vmiranda.jeds.web.correo;

import java.util.List;

import net.vmiranda.jeds.core.correo.Carpeta;
import net.vmiranda.jeds.core.correo.ClienteImap;
import net.vmiranda.jeds.core.correo.Mensaje;
import net.vmiranda.jeds.core.usuarios.Usuario;
import net.vmiranda.jeds.web.util.Sesion;

public class MBCorreo {

	private List<Carpeta> carpetas;
	private Carpeta carpetaActiva;
	private Mensaje mensajeActivo;
	private DataModelCorreos dmCorreos;
	private ClienteImap clienteImap;
	
	public MBCorreo(){
		Usuario usuarioActual = (Usuario)Sesion.get("usuarioActual");
		if(usuarioActual == null){
			throw new IllegalStateException("Error de desarrollo. Usuario sin autenticar, imposible por el filtro");
		}
		
		clienteImap = new ClienteImap(usuarioActual);
	}
	
	public List<Carpeta> getCarpetas(){
		if(carpetas == null ){
			try{
				carpetas = clienteImap.getCarpetas();
				setCarpetaActiva(carpetas.get(0));
			}catch(Exception e){
				
			}
		}
		return carpetas;
	}
	
	public List<Mensaje> getMensajes(){
		if(dmCorreos == null){dmCorreos = new DataModelCorreos(10, getCarpetaActiva());}
		return dmCorreos.getListaActiva();
	}
	
	public Carpeta getCarpetaActiva() {
		if(carpetas == null){getCarpetas();}
		return carpetaActiva;
	}

	public void setCarpetaActiva(Carpeta c){
		this.carpetaActiva = c;
		dmCorreos = new DataModelCorreos(10, carpetaActiva);
	}
	
	
	public String verCorreo(){
		return "verCorreo";
	}

	public void setMensajeActivo(Mensaje mensajeActivo) {
		this.mensajeActivo = mensajeActivo;
	}

	public Mensaje getMensajeActivo() {
		return mensajeActivo;
	}
	
	
	public DataModelCorreos getDmCorreos(){
		return dmCorreos;
	}
	
}
